<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset='UTF-8'>
    <meta name='referrer' content='always'>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <script src="./paper-full.min.js"></script>
</head>

<body>
    <canvas id="canvas-1"  canvas="canvas-1"></canvas>
</body>

</html>

<script canvas="canvas-1">
    // 引入Paper.js
    paper.install(window);

    // 设置Paper.js项目
   // 引入paper.js
// 假设已经通过<script>标签在HTML中引入了paper.js，并且创建了paper.js的环境
 
// 创建不规则多边形路径的函数
function createIrregularPolygonPath(center, numSides, innerRadius, outerRadius) {
    // 创建一个新的Path对象
    var path = new Path();
 
    // 计算每个边应该移动的角度
    var angle = 360 / numSides;
 
    // 初始化起点为圆周的某一点
    var initialAngle = (numSides % 2 === 0) ? angle / 2 : 0; // 如果边数是偶数，则从中间开始
    var initialPoint = center.add(new Point({
        length: outerRadius,
        angle: initialAngle
    }));
 
    // 将起点添加到路径中
    path.moveTo(initialPoint);
 
    // 添加其他的点到路径中
    for (var i = 1; i < numSides; i++) {
        // 计算下一个点的位置
        var point = center.add(new Point({
            length: i % 2 === 0 ? outerRadius : innerRadius,
            angle: (i * angle) + initialAngle
        }));
        // 将点添加到路径中
        path.lineTo(point);
    }
 
    // 关闭路径
    path.closePath();
 
    // 返回创建的路径
    console.log("path",path)
    return path;
}
 
// 使用函数创建一个不规则多边形
// 假设已经有一个paper.project和一个view对象
var centerPoint = new Point(200, 200); // 多边形的中心点
var numSides = 5; // 多边形的边数
var innerRadius = 50; // 内圆半径
var outerRadius = 100; // 外圆半径
 
var irregularPolygonPath = createIrregularPolygonPath(centerPoint, numSides, innerRadius, outerRadius);
irregularPolygonPath.fillColor = 'green';

</script>